<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libCZI: libCZI/libCZI_Pixels.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" async src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">libCZI
   </div>
   <div id="projectbrief">Reading CZI documents made easy</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('lib_c_z_i___pixels_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">libCZI_Pixels.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">//******************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// </span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// libCZI is a reader for the CZI fileformat written in C++</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">// Copyright (C) 2017  Zeiss Microscopy GmbH</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// </span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">// </span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// </span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">// along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">// </span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// To obtain a commercial version please contact Zeiss Microscopy GmbH.</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">// </span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">//******************************************************************************</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacelib_c_z_i.html">libCZI</a></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_rect.html">   32</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structlib_c_z_i_1_1_int_rect.html">IntRect</a></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    {</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_rect.html#a7a1e25fc9f6a4c99d9a3710446b7a5de">   34</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html#a7a1e25fc9f6a4c99d9a3710446b7a5de">x</a>;  </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_rect.html#a68521052e5725a4b6538fb81c3706383">   35</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html#a68521052e5725a4b6538fb81c3706383">y</a>;  </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_rect.html#ad83af8b748b2fdbf5ac96ff1773e623b">   36</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html#ad83af8b748b2fdbf5ac96ff1773e623b">w</a>;  </div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_rect.html#a59e7b7e0a9190fae3973e2da2bf7d173">   37</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html#a59e7b7e0a9190fae3973e2da2bf7d173">h</a>;  </div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_rect.html#ae9c4747389326efa22ba0ab98a15359b">   40</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html#ae9c4747389326efa22ba0ab98a15359b">Invalidate</a>() { this-&gt;w = this-&gt;h = -1; }</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_rect.html#adcabd2e773bd9277a5e30b7c41d90d13">   43</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html#adcabd2e773bd9277a5e30b7c41d90d13">IsValid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;w &gt;= 0 &amp;&amp; this-&gt;h &gt;= 0; }</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_rect.html#a7f1f1d29e2b43f840dd81584ae15bb15">   48</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html#a7f1f1d29e2b43f840dd81584ae15bb15">IntersectsWith</a>(<span class="keyword">const</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html">IntRect</a>&amp; r)<span class="keyword"> const</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keyword">        </span>{</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            <a class="code" href="structlib_c_z_i_1_1_int_rect.html">IntRect</a> is = this-&gt;<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a705db72d07819bb7dc89de8e85a695e1">Intersect</a>(r);</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;            <span class="keywordflow">if</span> (is.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#ad83af8b748b2fdbf5ac96ff1773e623b">w</a> &lt;= 0 || is.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a59e7b7e0a9190fae3973e2da2bf7d173">h</a> &lt;= 0)</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;            {</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;            }</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        }</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_rect.html#a705db72d07819bb7dc89de8e85a695e1">   64</a></span>&#160;        <a class="code" href="structlib_c_z_i_1_1_int_rect.html">IntRect</a> <a class="code" href="structlib_c_z_i_1_1_int_rect.html#a705db72d07819bb7dc89de8e85a695e1">Intersect</a>(<span class="keyword">const</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html">IntRect</a>&amp; r)<span class="keyword"> const</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keyword">        </span>{</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html#a705db72d07819bb7dc89de8e85a695e1">IntRect::Intersect</a>(*<span class="keyword">this</span>, r);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        }</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_rect.html#ab90921fdce94ba493985e125fdb32d39">   75</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html">IntRect</a> <a class="code" href="structlib_c_z_i_1_1_int_rect.html#ab90921fdce94ba493985e125fdb32d39">Intersect</a>(<span class="keyword">const</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html">IntRect</a>&amp; a, <span class="keyword">const</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html">IntRect</a>&amp; b)</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        {</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;            <span class="keywordtype">int</span> x1 = (std::max)(a.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a7a1e25fc9f6a4c99d9a3710446b7a5de">x</a>, b.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a7a1e25fc9f6a4c99d9a3710446b7a5de">x</a>);</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;            <span class="keywordtype">int</span> x2 = (std::min)(a.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a7a1e25fc9f6a4c99d9a3710446b7a5de">x</a> + a.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#ad83af8b748b2fdbf5ac96ff1773e623b">w</a>, b.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a7a1e25fc9f6a4c99d9a3710446b7a5de">x</a> + b.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#ad83af8b748b2fdbf5ac96ff1773e623b">w</a>);</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;            <span class="keywordtype">int</span> y1 = (std::max)(a.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a68521052e5725a4b6538fb81c3706383">y</a>, b.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a68521052e5725a4b6538fb81c3706383">y</a>);</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="keywordtype">int</span> y2 = (std::min)(a.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a68521052e5725a4b6538fb81c3706383">y</a> + a.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a59e7b7e0a9190fae3973e2da2bf7d173">h</a>, b.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a68521052e5725a4b6538fb81c3706383">y</a> + b.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a59e7b7e0a9190fae3973e2da2bf7d173">h</a>);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            <span class="keywordflow">if</span> (x2 &gt;= x1&amp;&amp; y2 &gt;= y1)</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            {</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html">IntRect</a>{ x1, y1, x2 - x1, y2 - y1 };</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;            }</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html">IntRect</a>{ 0,0,0,0 };</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        }</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    };</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_dbl_rect.html">   91</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structlib_c_z_i_1_1_dbl_rect.html">DblRect</a></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    {</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_dbl_rect.html#a8f92b6a3e150fa3a89d4dd5eb993ae19">   93</a></span>&#160;        <span class="keywordtype">double</span> <a class="code" href="structlib_c_z_i_1_1_dbl_rect.html#a8f92b6a3e150fa3a89d4dd5eb993ae19">x</a>;   </div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_dbl_rect.html#a3707799e08d5738981bb705496ff91f3">   94</a></span>&#160;        <span class="keywordtype">double</span> <a class="code" href="structlib_c_z_i_1_1_dbl_rect.html#a3707799e08d5738981bb705496ff91f3">y</a>;   </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_dbl_rect.html#a19153011d443de0d64924db9d10d4af8">   95</a></span>&#160;        <span class="keywordtype">double</span> <a class="code" href="structlib_c_z_i_1_1_dbl_rect.html#a19153011d443de0d64924db9d10d4af8">w</a>;   </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_dbl_rect.html#a00b8d612c3f621b56f6950f5803a0298">   96</a></span>&#160;        <span class="keywordtype">double</span> <a class="code" href="structlib_c_z_i_1_1_dbl_rect.html#a00b8d612c3f621b56f6950f5803a0298">h</a>;   </div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_dbl_rect.html#a3eb28e789f023aa43531d7917d6ba54d">   99</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="structlib_c_z_i_1_1_dbl_rect.html#a3eb28e789f023aa43531d7917d6ba54d">Invalidate</a>() { this-&gt;w = this-&gt;h = -1; }</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    };</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_size.html">  103</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structlib_c_z_i_1_1_int_size.html">IntSize</a></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    {</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_size.html#a62979309ccf04e31423b494e68c80957">  105</a></span>&#160;        std::uint32_t <a class="code" href="structlib_c_z_i_1_1_int_size.html#a62979309ccf04e31423b494e68c80957">w</a>;    </div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_int_size.html#a04b144b6c7cd7b6e994bad25a46dfdf5">  106</a></span>&#160;        std::uint32_t <a class="code" href="structlib_c_z_i_1_1_int_size.html#a04b144b6c7cd7b6e994bad25a46dfdf5">h</a>;    </div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    };</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_rgb8_color.html">  110</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structlib_c_z_i_1_1_rgb8_color.html">Rgb8Color</a></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    {</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_rgb8_color.html#acdf7d80ba3adccfc7866b4c0f182248c">  112</a></span>&#160;        std::uint8_t <a class="code" href="structlib_c_z_i_1_1_rgb8_color.html#acdf7d80ba3adccfc7866b4c0f182248c">r</a>; </div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_rgb8_color.html#ac65ccfe0906c981fffe91d03aeb1c5e6">  113</a></span>&#160;        std::uint8_t <a class="code" href="structlib_c_z_i_1_1_rgb8_color.html#ac65ccfe0906c981fffe91d03aeb1c5e6">g</a>; </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_rgb8_color.html#a6d3a9bfebe412e8febb32e8ea313ee40">  114</a></span>&#160;        std::uint8_t <a class="code" href="structlib_c_z_i_1_1_rgb8_color.html#a6d3a9bfebe412e8febb32e8ea313ee40">b</a>; </div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    };</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_rgb_float_color.html">  118</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structlib_c_z_i_1_1_rgb_float_color.html">RgbFloatColor</a></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    {</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_rgb_float_color.html#a41c20a73ab74d9ade494315511267ef2">  120</a></span>&#160;        <span class="keywordtype">float</span> <a class="code" href="structlib_c_z_i_1_1_rgb_float_color.html#a41c20a73ab74d9ade494315511267ef2">r</a>; </div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_rgb_float_color.html#ac2d9348df01510bd606f011cb4930254">  121</a></span>&#160;        <span class="keywordtype">float</span> <a class="code" href="structlib_c_z_i_1_1_rgb_float_color.html#ac2d9348df01510bd606f011cb4930254">g</a>; </div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_rgb_float_color.html#a599c4b00addc9c1cf88c9ef943903064">  122</a></span>&#160;        <span class="keywordtype">float</span> <a class="code" href="structlib_c_z_i_1_1_rgb_float_color.html#a599c4b00addc9c1cf88c9ef943903064">b</a>; </div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    };</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834">  126</a></span>&#160;    <span class="keyword">enum class</span> <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834">PixelType</a> : std::uint8_t</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    {</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a4bbb8f967da6d1a610596d7257179c2b">Invalid</a> = 0xff,             </div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834ac8cfe3d00282445878661f32adca48ef">Gray8</a> = 0,                  </div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a2a6ec0dac8730c09dba12f860dbbad12">Gray16</a> = 1,                 </div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a775c539daafabbfa29d83576687dd529">Gray32Float</a> = 2,            </div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834ab2c7c7f5592a2d285184d73d3b619173">Bgr24</a> = 3,                  </div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a7db8f5fba48387a28c10c0f27eea31a0">Bgr48</a> = 4,                  </div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834ad42330ab003d3ccd0e9bfb8dcb59fe78">Bgr96Float</a> = 8,             </div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a2c5ed55e4aac8b7ca717880f2267896a">Bgra32</a> = 9,                 </div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a062a1aa408f0e6dff16852b6059d50eb">Gray64ComplexFloat</a> = 10,    </div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834aa48ea83023a8044662550b0871fa7878">Bgr192ComplexFloat</a> = 11,    </div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a7f0779c83e549b802dc51d3ee21409fb">Gray32</a> = 12,                </div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a6430601b36b882d0c9d97bfdd83865d9">Gray64Float</a> = 13,           </div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    };</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="namespacelib_c_z_i.html#a672959aa909ce27c5a549465200b08fb">  143</a></span>&#160;    <span class="keyword">enum class</span> <a class="code" href="namespacelib_c_z_i.html#a672959aa909ce27c5a549465200b08fb">CompressionMode</a> : std::uint8_t</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    {</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a4bbb8f967da6d1a610596d7257179c2b">Invalid</a> = 0xff,     </div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#a672959aa909ce27c5a549465200b08fbae7e0de5672fc94ea487936c0de3ff199">UnCompressed</a> = 0,   </div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#a672959aa909ce27c5a549465200b08fbad490ed93cc2099a7be4dcb5257fe50bf">Jpg</a> = 1,            </div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <a class="code" href="namespacelib_c_z_i.html#a672959aa909ce27c5a549465200b08fba92cede94b3f3b5fabbcd19c7fe25b9bc">JpgXr</a> = 4           </div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    };</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_bitmap_lock_info.html">  152</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html">BitmapLockInfo</a></div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    {</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a1113106a82231213cd4e8980d3106ebd">  154</a></span>&#160;        <span class="keywordtype">void</span>*               <a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a1113106a82231213cd4e8980d3106ebd">ptrData</a>;    </div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_bitmap_lock_info.html#ab54e2118992996eacc9ccd8e49397f09">  155</a></span>&#160;        <span class="keywordtype">void</span>*               <a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#ab54e2118992996eacc9ccd8e49397f09">ptrDataRoi</a>; </div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a8e7259142382ec0ad887c974d27775b6">  156</a></span>&#160;        std::uint32_t       <a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a8e7259142382ec0ad887c974d27775b6">stride</a>;     </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a109f8d69b48bc4398861217c375dee1b">  157</a></span>&#160;        std::uint64_t       <a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a109f8d69b48bc4398861217c375dee1b">size</a>;       </div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    };</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classlib_c_z_i_1_1_i_bitmap_data.html">  166</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classlib_c_z_i_1_1_i_bitmap_data.html">IBitmapData</a></div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    {</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834">PixelType</a>       <a class="code" href="classlib_c_z_i_1_1_i_bitmap_data.html#a66f27266674d7f328dd5f1270b81a94e">GetPixelType</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="structlib_c_z_i_1_1_int_size.html">IntSize</a>         <a class="code" href="classlib_c_z_i_1_1_i_bitmap_data.html#af612716947147a55dcbbb245c3335ace">GetSize</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html">BitmapLockInfo</a>  <a class="code" href="classlib_c_z_i_1_1_i_bitmap_data.html#afbdfc7266b37850cfb53d5106bfd4f44">Lock</a>() = 0;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>            <a class="code" href="classlib_c_z_i_1_1_i_bitmap_data.html#a473c706c604fd687fb653bd06f0e0356">Unlock</a>() = 0;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classlib_c_z_i_1_1_i_bitmap_data.html#aa2638991a88c736ff4e6c42dc4c6c5c7">  199</a></span>&#160;        std::uint32_t <a class="code" href="classlib_c_z_i_1_1_i_bitmap_data.html#aa2638991a88c736ff4e6c42dc4c6c5c7">GetWidth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;<a class="code" href="classlib_c_z_i_1_1_i_bitmap_data.html#af612716947147a55dcbbb245c3335ace">GetSize</a>().<a class="code" href="structlib_c_z_i_1_1_int_size.html#a62979309ccf04e31423b494e68c80957">w</a>; }</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classlib_c_z_i_1_1_i_bitmap_data.html#a2072b5c8db493b7b19717811a96a6483">  204</a></span>&#160;        std::uint32_t <a class="code" href="classlib_c_z_i_1_1_i_bitmap_data.html#a2072b5c8db493b7b19717811a96a6483">GetHeight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;<a class="code" href="classlib_c_z_i_1_1_i_bitmap_data.html#af612716947147a55dcbbb245c3335ace">GetSize</a>().<a class="code" href="structlib_c_z_i_1_1_int_size.html#a04b144b6c7cd7b6e994bad25a46dfdf5">h</a>; }</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    };</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> tBitmap&gt;</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html">  252</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html">ScopedBitmapLocker</a> : <span class="keyword">public</span> <a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html">BitmapLockInfo</a></div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    {</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <span class="keyword">private</span>:</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        tBitmap bmData;</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        <a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html">ScopedBitmapLocker</a>() = <span class="keyword">delete</span>;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#a871926718a1b6f2b00002d327154049b">  261</a></span>&#160;        <span class="keyword">explicit</span> <a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#a871926718a1b6f2b00002d327154049b">ScopedBitmapLocker</a>(tBitmap bmData) : bmData(bmData)</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        {</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;            <span class="keyword">auto</span> lockInfo = bmData-&gt;Lock();</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;            this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a1113106a82231213cd4e8980d3106ebd">ptrData</a> = lockInfo.ptrData;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;            this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#ab54e2118992996eacc9ccd8e49397f09">ptrDataRoi</a> = lockInfo.ptrDataRoi;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;            this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a8e7259142382ec0ad887c974d27775b6">stride</a> = lockInfo.stride;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;            this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a109f8d69b48bc4398861217c375dee1b">size</a> = lockInfo.size;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        }</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#a3d5e197884453daaa5c6252a6dd19e9e">  272</a></span>&#160;        <a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#a3d5e197884453daaa5c6252a6dd19e9e">ScopedBitmapLocker</a>(<span class="keyword">const</span> <a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html">ScopedBitmapLocker&lt;tBitmap&gt;</a>&amp; other) : bmData(other.bmData)</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        {</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;            <span class="keyword">auto</span> lockInfo = other.bmData-&gt;Lock();</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;            this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a1113106a82231213cd4e8980d3106ebd">ptrData</a> = lockInfo.ptrData;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;            this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#ab54e2118992996eacc9ccd8e49397f09">ptrDataRoi</a> = lockInfo.ptrDataRoi;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;            this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a8e7259142382ec0ad887c974d27775b6">stride</a> = lockInfo.stride;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;            this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a109f8d69b48bc4398861217c375dee1b">size</a> = lockInfo.size;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        }</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#ae8096865753018bffff4544c28ab4945">  282</a></span>&#160;        <a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#ae8096865753018bffff4544c28ab4945">ScopedBitmapLocker</a>(<a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html">ScopedBitmapLocker&lt;tBitmap&gt;</a>&amp;&amp; other) noexcept : bmData(tBitmap())</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        {</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;            *<span class="keyword">this</span> = std::move(other);</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        }</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#aaaf38bc85de0190783597ccf3620fd85">  288</a></span>&#160;        <a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html">ScopedBitmapLocker&lt;tBitmap&gt;</a>&amp; <a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#aaaf38bc85de0190783597ccf3620fd85">operator=</a>(<a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html">ScopedBitmapLocker&lt;tBitmap&gt;</a>&amp;&amp; other) noexcept</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        {</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;            <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other)</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;            {</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;                <span class="keywordflow">if</span> (this-&gt;bmData)</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;                {</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;                    this-&gt;bmData-&gt;Unlock();</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;                }</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;                this-&gt;bmData = std::move(other.bmData);</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;                this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a1113106a82231213cd4e8980d3106ebd">ptrData</a> = other.ptrData;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;                this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#ab54e2118992996eacc9ccd8e49397f09">ptrDataRoi</a> = other.ptrDataRoi;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;                this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a8e7259142382ec0ad887c974d27775b6">stride</a> = other.stride;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;                this-&gt;<a class="code" href="structlib_c_z_i_1_1_bitmap_lock_info.html#a109f8d69b48bc4398861217c375dee1b">size</a> = other.size;</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;                other.ptrData = other.ptrDataRoi = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                other.bmData = tBitmap();</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;            }</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;            <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        }</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        ~<a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html">ScopedBitmapLocker</a>()</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        {</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;            <span class="keywordflow">if</span> (this-&gt;bmData)</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;            {</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;                this-&gt;bmData-&gt;Unlock();</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;            }</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        }</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    };</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="namespacelib_c_z_i.html#aa0a4df11f476d960267cc3757d7e889d">  319</a></span>&#160;    <span class="keyword">typedef</span> <a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html">ScopedBitmapLocker&lt;IBitmapData*&gt;</a> <a class="code" href="namespacelib_c_z_i.html#aa0a4df11f476d960267cc3757d7e889d">ScopedBitmapLockerP</a>;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="namespacelib_c_z_i.html#a44eca12300534095278df46d8b7ef824">  322</a></span>&#160;    <span class="keyword">typedef</span> <a class="code" href="classlib_c_z_i_1_1_scoped_bitmap_locker.html">ScopedBitmapLocker&lt;std::shared_ptr&lt;IBitmapData&gt;</a>&gt; <a class="code" href="namespacelib_c_z_i.html#a44eca12300534095278df46d8b7ef824">ScopedBitmapLockerSP</a>;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="comment">//-------------------------------------------------------------------------</span></div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="namespacelib_c_z_i.html#aee5b36178903cd959cd840973309c4bb">  330</a></span>&#160;    <span class="keyword">inline</span> std::ostream&amp; <a class="code" href="namespacelib_c_z_i.html#aee5b36178903cd959cd840973309c4bb">operator&lt;&lt;</a>(std::ostream&amp; os, <span class="keyword">const</span> <a class="code" href="structlib_c_z_i_1_1_int_rect.html">IntRect</a>&amp; rect)</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    {</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        os &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; rect.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a7a1e25fc9f6a4c99d9a3710446b7a5de">x</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; rect.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a68521052e5725a4b6538fb81c3706383">y</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; rect.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#ad83af8b748b2fdbf5ac96ff1773e623b">w</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; rect.<a class="code" href="structlib_c_z_i_1_1_int_rect.html#a59e7b7e0a9190fae3973e2da2bf7d173">h</a> &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    }</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="namespacelib_c_z_i.html#aa572fb9812d1569dc1afbcef03fbc3ee">  340</a></span>&#160;    <span class="keyword">inline</span> std::ostream&amp; <a class="code" href="namespacelib_c_z_i.html#aee5b36178903cd959cd840973309c4bb">operator&lt;&lt;</a>(std::ostream&amp; os, <span class="keyword">const</span> <a class="code" href="structlib_c_z_i_1_1_int_size.html">IntSize</a>&amp; size)</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    {</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        os &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; size.<a class="code" href="structlib_c_z_i_1_1_int_size.html#a62979309ccf04e31423b494e68c80957">w</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; size.<a class="code" href="structlib_c_z_i_1_1_int_size.html#a04b144b6c7cd7b6e994bad25a46dfdf5">h</a> &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    }</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;}</div><div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834">libCZI::PixelType</a></div><div class="ttdeci">PixelType</div><div class="ttdoc">An enum representing a pixel-type. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:126</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_dbl_rect_html"><div class="ttname"><a href="structlib_c_z_i_1_1_dbl_rect.html">libCZI::DblRect</a></div><div class="ttdoc">A rectangle (with double coordinates). </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:91</div></div>
<div class="ttc" id="classlib_c_z_i_1_1_i_bitmap_data_html"><div class="ttname"><a href="classlib_c_z_i_1_1_i_bitmap_data.html">libCZI::IBitmapData</a></div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:166</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_a672959aa909ce27c5a549465200b08fb"><div class="ttname"><a href="namespacelib_c_z_i.html#a672959aa909ce27c5a549465200b08fb">libCZI::CompressionMode</a></div><div class="ttdeci">CompressionMode</div><div class="ttdoc">An enum specifying the compression method. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:143</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834ad42330ab003d3ccd0e9bfb8dcb59fe78"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834ad42330ab003d3ccd0e9bfb8dcb59fe78">libCZI::PixelType::Bgr96Float</a></div><div class="ttdoc">BGR-color 4 byte float triples (memory order B, G, R). </div></div>
<div class="ttc" id="structlib_c_z_i_1_1_bitmap_lock_info_html_a1113106a82231213cd4e8980d3106ebd"><div class="ttname"><a href="structlib_c_z_i_1_1_bitmap_lock_info.html#a1113106a82231213cd4e8980d3106ebd">libCZI::BitmapLockInfo::ptrData</a></div><div class="ttdeci">void * ptrData</div><div class="ttdoc">Not currently used, to be ignored. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:154</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834a4bbb8f967da6d1a610596d7257179c2b"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a4bbb8f967da6d1a610596d7257179c2b">libCZI::PixelType::Invalid</a></div><div class="ttdoc">Invalid pixel type. </div></div>
<div class="ttc" id="classlib_c_z_i_1_1_scoped_bitmap_locker_html"><div class="ttname"><a href="classlib_c_z_i_1_1_scoped_bitmap_locker.html">libCZI::ScopedBitmapLocker</a></div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:252</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834a6430601b36b882d0c9d97bfdd83865d9"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a6430601b36b882d0c9d97bfdd83865d9">libCZI::PixelType::Gray64Float</a></div><div class="ttdoc">Currently not supported in libCZI. </div></div>
<div class="ttc" id="classlib_c_z_i_1_1_i_bitmap_data_html_a66f27266674d7f328dd5f1270b81a94e"><div class="ttname"><a href="classlib_c_z_i_1_1_i_bitmap_data.html#a66f27266674d7f328dd5f1270b81a94e">libCZI::IBitmapData::GetPixelType</a></div><div class="ttdeci">virtual PixelType GetPixelType() const =0</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_bitmap_lock_info_html"><div class="ttname"><a href="structlib_c_z_i_1_1_bitmap_lock_info.html">libCZI::BitmapLockInfo</a></div><div class="ttdoc">Information about a locked bitmap - allowing direct access to the image data in memory. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:152</div></div>
<div class="ttc" id="classlib_c_z_i_1_1_i_bitmap_data_html_aa2638991a88c736ff4e6c42dc4c6c5c7"><div class="ttname"><a href="classlib_c_z_i_1_1_i_bitmap_data.html#aa2638991a88c736ff4e6c42dc4c6c5c7">libCZI::IBitmapData::GetWidth</a></div><div class="ttdeci">std::uint32_t GetWidth() const</div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:199</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_a672959aa909ce27c5a549465200b08fba92cede94b3f3b5fabbcd19c7fe25b9bc"><div class="ttname"><a href="namespacelib_c_z_i.html#a672959aa909ce27c5a549465200b08fba92cede94b3f3b5fabbcd19c7fe25b9bc">libCZI::CompressionMode::JpgXr</a></div><div class="ttdoc">The data is JPG-XR-compressed. </div></div>
<div class="ttc" id="namespacelib_c_z_i_html_aee5b36178903cd959cd840973309c4bb"><div class="ttname"><a href="namespacelib_c_z_i.html#aee5b36178903cd959cd840973309c4bb">libCZI::operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, const IntRect &amp;rect)</div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:330</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_rect_html_ad83af8b748b2fdbf5ac96ff1773e623b"><div class="ttname"><a href="structlib_c_z_i_1_1_int_rect.html#ad83af8b748b2fdbf5ac96ff1773e623b">libCZI::IntRect::w</a></div><div class="ttdeci">int w</div><div class="ttdoc">The width of the rectangle. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:36</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834a7db8f5fba48387a28c10c0f27eea31a0"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a7db8f5fba48387a28c10c0f27eea31a0">libCZI::PixelType::Bgr48</a></div><div class="ttdoc">BGR-color 16-bytes triples (memory order B, G, R). </div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_size_html_a04b144b6c7cd7b6e994bad25a46dfdf5"><div class="ttname"><a href="structlib_c_z_i_1_1_int_size.html#a04b144b6c7cd7b6e994bad25a46dfdf5">libCZI::IntSize::h</a></div><div class="ttdeci">std::uint32_t h</div><div class="ttdoc">The height. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:106</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_rect_html_a59e7b7e0a9190fae3973e2da2bf7d173"><div class="ttname"><a href="structlib_c_z_i_1_1_int_rect.html#a59e7b7e0a9190fae3973e2da2bf7d173">libCZI::IntRect::h</a></div><div class="ttdeci">int h</div><div class="ttdoc">The height of the rectangle. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:37</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_dbl_rect_html_a3707799e08d5738981bb705496ff91f3"><div class="ttname"><a href="structlib_c_z_i_1_1_dbl_rect.html#a3707799e08d5738981bb705496ff91f3">libCZI::DblRect::y</a></div><div class="ttdeci">double y</div><div class="ttdoc">The y-coordinate of the upper-left point of the rectangle. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:94</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834a062a1aa408f0e6dff16852b6059d50eb"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a062a1aa408f0e6dff16852b6059d50eb">libCZI::PixelType::Gray64ComplexFloat</a></div><div class="ttdoc">Currently not supported in libCZI. </div></div>
<div class="ttc" id="structlib_c_z_i_1_1_bitmap_lock_info_html_a109f8d69b48bc4398861217c375dee1b"><div class="ttname"><a href="structlib_c_z_i_1_1_bitmap_lock_info.html#a109f8d69b48bc4398861217c375dee1b">libCZI::BitmapLockInfo::size</a></div><div class="ttdeci">std::uint64_t size</div><div class="ttdoc">The size of the bitmap data (pointed to by ptrDataRoi) in bytes. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:157</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_rgb8_color_html_a6d3a9bfebe412e8febb32e8ea313ee40"><div class="ttname"><a href="structlib_c_z_i_1_1_rgb8_color.html#a6d3a9bfebe412e8febb32e8ea313ee40">libCZI::Rgb8Color::b</a></div><div class="ttdeci">std::uint8_t b</div><div class="ttdoc">The blue component. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:114</div></div>
<div class="ttc" id="classlib_c_z_i_1_1_scoped_bitmap_locker_html_a871926718a1b6f2b00002d327154049b"><div class="ttname"><a href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#a871926718a1b6f2b00002d327154049b">libCZI::ScopedBitmapLocker::ScopedBitmapLocker</a></div><div class="ttdeci">ScopedBitmapLocker(tBitmap bmData)</div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:261</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_rect_html_a7f1f1d29e2b43f840dd81584ae15bb15"><div class="ttname"><a href="structlib_c_z_i_1_1_int_rect.html#a7f1f1d29e2b43f840dd81584ae15bb15">libCZI::IntRect::IntersectsWith</a></div><div class="ttdeci">bool IntersectsWith(const IntRect &amp;r) const</div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:48</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_rgb8_color_html"><div class="ttname"><a href="structlib_c_z_i_1_1_rgb8_color.html">libCZI::Rgb8Color</a></div><div class="ttdoc">A structure representing an R-G-B-color triple (as bytes). </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:110</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_a672959aa909ce27c5a549465200b08fbae7e0de5672fc94ea487936c0de3ff199"><div class="ttname"><a href="namespacelib_c_z_i.html#a672959aa909ce27c5a549465200b08fbae7e0de5672fc94ea487936c0de3ff199">libCZI::CompressionMode::UnCompressed</a></div><div class="ttdoc">The data is uncompressed. </div></div>
<div class="ttc" id="structlib_c_z_i_1_1_bitmap_lock_info_html_a8e7259142382ec0ad887c974d27775b6"><div class="ttname"><a href="structlib_c_z_i_1_1_bitmap_lock_info.html#a8e7259142382ec0ad887c974d27775b6">libCZI::BitmapLockInfo::stride</a></div><div class="ttdeci">std::uint32_t stride</div><div class="ttdoc">The stride of the bitmap data (pointed to by ptrDataRoi). </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:156</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_rgb_float_color_html_a41c20a73ab74d9ade494315511267ef2"><div class="ttname"><a href="structlib_c_z_i_1_1_rgb_float_color.html#a41c20a73ab74d9ade494315511267ef2">libCZI::RgbFloatColor::r</a></div><div class="ttdeci">float r</div><div class="ttdoc">The red component. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:120</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834a2c5ed55e4aac8b7ca717880f2267896a"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a2c5ed55e4aac8b7ca717880f2267896a">libCZI::PixelType::Bgra32</a></div><div class="ttdoc">Currently not supported in libCZI. </div></div>
<div class="ttc" id="classlib_c_z_i_1_1_scoped_bitmap_locker_html_aaaf38bc85de0190783597ccf3620fd85"><div class="ttname"><a href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#aaaf38bc85de0190783597ccf3620fd85">libCZI::ScopedBitmapLocker::operator=</a></div><div class="ttdeci">ScopedBitmapLocker&lt; tBitmap &gt; &amp; operator=(ScopedBitmapLocker&lt; tBitmap &gt; &amp;&amp;other) noexcept</div><div class="ttdoc">move assignment </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:288</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_rect_html_ab90921fdce94ba493985e125fdb32d39"><div class="ttname"><a href="structlib_c_z_i_1_1_int_rect.html#ab90921fdce94ba493985e125fdb32d39">libCZI::IntRect::Intersect</a></div><div class="ttdeci">static IntRect Intersect(const IntRect &amp;a, const IntRect &amp;b)</div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:75</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_dbl_rect_html_a00b8d612c3f621b56f6950f5803a0298"><div class="ttname"><a href="structlib_c_z_i_1_1_dbl_rect.html#a00b8d612c3f621b56f6950f5803a0298">libCZI::DblRect::h</a></div><div class="ttdeci">double h</div><div class="ttdoc">The height of the rectangle. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:96</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834ab2c7c7f5592a2d285184d73d3b619173"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834ab2c7c7f5592a2d285184d73d3b619173">libCZI::PixelType::Bgr24</a></div><div class="ttdoc">BGR-color 8-bytes triples (memory order B, G, R). </div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834a2a6ec0dac8730c09dba12f860dbbad12"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a2a6ec0dac8730c09dba12f860dbbad12">libCZI::PixelType::Gray16</a></div><div class="ttdoc">Grayscale 16-bit unsinged. </div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834ac8cfe3d00282445878661f32adca48ef"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834ac8cfe3d00282445878661f32adca48ef">libCZI::PixelType::Gray8</a></div><div class="ttdoc">Grayscale 8-bit unsinged. </div></div>
<div class="ttc" id="structlib_c_z_i_1_1_dbl_rect_html_a8f92b6a3e150fa3a89d4dd5eb993ae19"><div class="ttname"><a href="structlib_c_z_i_1_1_dbl_rect.html#a8f92b6a3e150fa3a89d4dd5eb993ae19">libCZI::DblRect::x</a></div><div class="ttdeci">double x</div><div class="ttdoc">The x-coordinate of the upper-left point of the rectangle. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:93</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_rgb8_color_html_acdf7d80ba3adccfc7866b4c0f182248c"><div class="ttname"><a href="structlib_c_z_i_1_1_rgb8_color.html#acdf7d80ba3adccfc7866b4c0f182248c">libCZI::Rgb8Color::r</a></div><div class="ttdeci">std::uint8_t r</div><div class="ttdoc">The red component. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:112</div></div>
<div class="ttc" id="classlib_c_z_i_1_1_scoped_bitmap_locker_html_ae8096865753018bffff4544c28ab4945"><div class="ttname"><a href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#ae8096865753018bffff4544c28ab4945">libCZI::ScopedBitmapLocker::ScopedBitmapLocker</a></div><div class="ttdeci">ScopedBitmapLocker(ScopedBitmapLocker&lt; tBitmap &gt; &amp;&amp;other) noexcept</div><div class="ttdoc">move constructor </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:282</div></div>
<div class="ttc" id="classlib_c_z_i_1_1_i_bitmap_data_html_afbdfc7266b37850cfb53d5106bfd4f44"><div class="ttname"><a href="classlib_c_z_i_1_1_i_bitmap_data.html#afbdfc7266b37850cfb53d5106bfd4f44">libCZI::IBitmapData::Lock</a></div><div class="ttdeci">virtual BitmapLockInfo Lock()=0</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_rgb_float_color_html_ac2d9348df01510bd606f011cb4930254"><div class="ttname"><a href="structlib_c_z_i_1_1_rgb_float_color.html#ac2d9348df01510bd606f011cb4930254">libCZI::RgbFloatColor::g</a></div><div class="ttdeci">float g</div><div class="ttdoc">The green component. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:121</div></div>
<div class="ttc" id="classlib_c_z_i_1_1_scoped_bitmap_locker_html_a3d5e197884453daaa5c6252a6dd19e9e"><div class="ttname"><a href="classlib_c_z_i_1_1_scoped_bitmap_locker.html#a3d5e197884453daaa5c6252a6dd19e9e">libCZI::ScopedBitmapLocker::ScopedBitmapLocker</a></div><div class="ttdeci">ScopedBitmapLocker(const ScopedBitmapLocker&lt; tBitmap &gt; &amp;other)</div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:272</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_rect_html_ae9c4747389326efa22ba0ab98a15359b"><div class="ttname"><a href="structlib_c_z_i_1_1_int_rect.html#ae9c4747389326efa22ba0ab98a15359b">libCZI::IntRect::Invalidate</a></div><div class="ttdeci">void Invalidate()</div><div class="ttdoc">Invalidates this object. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:40</div></div>
<div class="ttc" id="classlib_c_z_i_1_1_i_bitmap_data_html_a2072b5c8db493b7b19717811a96a6483"><div class="ttname"><a href="classlib_c_z_i_1_1_i_bitmap_data.html#a2072b5c8db493b7b19717811a96a6483">libCZI::IBitmapData::GetHeight</a></div><div class="ttdeci">std::uint32_t GetHeight() const</div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:204</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_rect_html"><div class="ttname"><a href="structlib_c_z_i_1_1_int_rect.html">libCZI::IntRect</a></div><div class="ttdoc">A rectangle (with integer coordinates). </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:32</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_rgb_float_color_html"><div class="ttname"><a href="structlib_c_z_i_1_1_rgb_float_color.html">libCZI::RgbFloatColor</a></div><div class="ttdoc">A structure representing an R-G-B-color triple (as floats). </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:118</div></div>
<div class="ttc" id="classlib_c_z_i_1_1_i_bitmap_data_html_af612716947147a55dcbbb245c3335ace"><div class="ttname"><a href="classlib_c_z_i_1_1_i_bitmap_data.html#af612716947147a55dcbbb245c3335ace">libCZI::IBitmapData::GetSize</a></div><div class="ttdeci">virtual IntSize GetSize() const =0</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_rgb8_color_html_ac65ccfe0906c981fffe91d03aeb1c5e6"><div class="ttname"><a href="structlib_c_z_i_1_1_rgb8_color.html#ac65ccfe0906c981fffe91d03aeb1c5e6">libCZI::Rgb8Color::g</a></div><div class="ttdeci">std::uint8_t g</div><div class="ttdoc">The green component. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:113</div></div>
<div class="ttc" id="namespacelib_c_z_i_html"><div class="ttname"><a href="namespacelib_c_z_i.html">libCZI</a></div><div class="ttdoc">External interfaces, classes, functions and structs are found in the namespace &quot;libCZI&quot;. </div><div class="ttdef"><b>Definition:</b> libCZI.h:44</div></div>
<div class="ttc" id="classlib_c_z_i_1_1_i_bitmap_data_html_a473c706c604fd687fb653bd06f0e0356"><div class="ttname"><a href="classlib_c_z_i_1_1_i_bitmap_data.html#a473c706c604fd687fb653bd06f0e0356">libCZI::IBitmapData::Unlock</a></div><div class="ttdeci">virtual void Unlock()=0</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_rect_html_a68521052e5725a4b6538fb81c3706383"><div class="ttname"><a href="structlib_c_z_i_1_1_int_rect.html#a68521052e5725a4b6538fb81c3706383">libCZI::IntRect::y</a></div><div class="ttdeci">int y</div><div class="ttdoc">The y-coordinate of the upper-left point of the rectangle. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:35</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_dbl_rect_html_a19153011d443de0d64924db9d10d4af8"><div class="ttname"><a href="structlib_c_z_i_1_1_dbl_rect.html#a19153011d443de0d64924db9d10d4af8">libCZI::DblRect::w</a></div><div class="ttdeci">double w</div><div class="ttdoc">The width of the rectangle. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:95</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834a775c539daafabbfa29d83576687dd529"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a775c539daafabbfa29d83576687dd529">libCZI::PixelType::Gray32Float</a></div><div class="ttdoc">Grayscale 4 byte float. </div></div>
<div class="ttc" id="namespacelib_c_z_i_html_a44eca12300534095278df46d8b7ef824"><div class="ttname"><a href="namespacelib_c_z_i.html#a44eca12300534095278df46d8b7ef824">libCZI::ScopedBitmapLockerSP</a></div><div class="ttdeci">ScopedBitmapLocker&lt; std::shared_ptr&lt; IBitmapData &gt; &gt; ScopedBitmapLockerSP</div><div class="ttdoc">Defines an alias representing the scoped bitmap locker for use with a shared_ptr of type libCZI::IBit...</div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:322</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_rgb_float_color_html_a599c4b00addc9c1cf88c9ef943903064"><div class="ttname"><a href="structlib_c_z_i_1_1_rgb_float_color.html#a599c4b00addc9c1cf88c9ef943903064">libCZI::RgbFloatColor::b</a></div><div class="ttdeci">float b</div><div class="ttdoc">The blue component. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:122</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834aa48ea83023a8044662550b0871fa7878"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834aa48ea83023a8044662550b0871fa7878">libCZI::PixelType::Bgr192ComplexFloat</a></div><div class="ttdoc">Currently not supported in libCZI. </div></div>
<div class="ttc" id="namespacelib_c_z_i_html_a672959aa909ce27c5a549465200b08fbad490ed93cc2099a7be4dcb5257fe50bf"><div class="ttname"><a href="namespacelib_c_z_i.html#a672959aa909ce27c5a549465200b08fbad490ed93cc2099a7be4dcb5257fe50bf">libCZI::CompressionMode::Jpg</a></div><div class="ttdoc">The data is JPG-compressed. </div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_size_html"><div class="ttname"><a href="structlib_c_z_i_1_1_int_size.html">libCZI::IntSize</a></div><div class="ttdoc">A structure representing a size (width and height) in integers. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:103</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_rect_html_adcabd2e773bd9277a5e30b7c41d90d13"><div class="ttname"><a href="structlib_c_z_i_1_1_int_rect.html#adcabd2e773bd9277a5e30b7c41d90d13">libCZI::IntRect::IsValid</a></div><div class="ttdeci">bool IsValid() const</div><div class="ttdoc">Returns a boolean indicating whether this rectangle contains valid information. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:43</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_aa0a4df11f476d960267cc3757d7e889d"><div class="ttname"><a href="namespacelib_c_z_i.html#aa0a4df11f476d960267cc3757d7e889d">libCZI::ScopedBitmapLockerP</a></div><div class="ttdeci">ScopedBitmapLocker&lt; IBitmapData * &gt; ScopedBitmapLockerP</div><div class="ttdoc">Defines an alias representing the scoped bitmap locker for use with libCZI::IBitmapData. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:319</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_dbl_rect_html_a3eb28e789f023aa43531d7917d6ba54d"><div class="ttname"><a href="structlib_c_z_i_1_1_dbl_rect.html#a3eb28e789f023aa43531d7917d6ba54d">libCZI::DblRect::Invalidate</a></div><div class="ttdeci">void Invalidate()</div><div class="ttdoc">Invalidates this object. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:99</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_rect_html_a7a1e25fc9f6a4c99d9a3710446b7a5de"><div class="ttname"><a href="structlib_c_z_i_1_1_int_rect.html#a7a1e25fc9f6a4c99d9a3710446b7a5de">libCZI::IntRect::x</a></div><div class="ttdeci">int x</div><div class="ttdoc">The x-coordinate of the upper-left point of the rectangle. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:34</div></div>
<div class="ttc" id="namespacelib_c_z_i_html_abf8ce12ab88b06c8b3b47efbb5e2e834a7f0779c83e549b802dc51d3ee21409fb"><div class="ttname"><a href="namespacelib_c_z_i.html#abf8ce12ab88b06c8b3b47efbb5e2e834a7f0779c83e549b802dc51d3ee21409fb">libCZI::PixelType::Gray32</a></div><div class="ttdoc">Currently not supported in libCZI. </div></div>
<div class="ttc" id="structlib_c_z_i_1_1_bitmap_lock_info_html_ab54e2118992996eacc9ccd8e49397f09"><div class="ttname"><a href="structlib_c_z_i_1_1_bitmap_lock_info.html#ab54e2118992996eacc9ccd8e49397f09">libCZI::BitmapLockInfo::ptrDataRoi</a></div><div class="ttdeci">void * ptrDataRoi</div><div class="ttdoc">The pointer to the first (top-left) pixel of the bitmap. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:155</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_rect_html_a705db72d07819bb7dc89de8e85a695e1"><div class="ttname"><a href="structlib_c_z_i_1_1_int_rect.html#a705db72d07819bb7dc89de8e85a695e1">libCZI::IntRect::Intersect</a></div><div class="ttdeci">IntRect Intersect(const IntRect &amp;r) const</div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:64</div></div>
<div class="ttc" id="structlib_c_z_i_1_1_int_size_html_a62979309ccf04e31423b494e68c80957"><div class="ttname"><a href="structlib_c_z_i_1_1_int_size.html#a62979309ccf04e31423b494e68c80957">libCZI::IntSize::w</a></div><div class="ttdeci">std::uint32_t w</div><div class="ttdoc">The width. </div><div class="ttdef"><b>Definition:</b> libCZI_Pixels.h:105</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_21e977e93a9d37f41c2225f78f35f145.html">libCZI</a></li><li class="navelem"><b>libCZI_Pixels.h</b></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
  </ul>
</div>
</body>
</html>
